package javaweb_work01.main.Utils;

/**
 * 分页显示相关的工具类
 */
public class PageContrl {

    private int start;//每一页第一条数据的编号
    private int pageShow;//每页显示的数量
    private int total;//总数据量

    /**
     * 提供一个构造方法
     * @param start
     * @param pageShow
     */
    public PageContrl(int start, int pageShow, int total) {
        this.start = start;
        this.pageShow = pageShow;
        this.total = total;
    }

    /**
     * 判断是否有上一页
     * @return
     */
    public boolean backOK(){
        if(start==0)
            return false;
        return true;
    }

    /**
     * 判断是否有下一页
     * @return
     */
    public boolean nextOK(){
        if(start==getLast())
            return false;
        return true;
    }

    /**
     * 计算得到尾页数据的第一条
     * @return
     */
    public int getLast() {
        int last;
        // 如果每页显示的数据数可以被总数据数整除，则最后一页的开头数据为第（总数-页面显示数）条
        if (0 == total % pageShow) {
            last = total - pageShow;
        // 如果不能被整除，则最后一页的开头数据为第（总数-余数）条
        } else{
            last = total - total % pageShow;
        }
        //如数据量少于每页要显示的数据量，则最后一页的开头数据为第一条数据
        last = last<0?0:last;
        //返回数据
        return last;
    }

    public int getStart() {
        return start;
    }

    public void setStart(int start) {
        this.start = start;
    }

    public int getPageShow() {
        return pageShow;
    }

    public void setPageShow(int pageShow) {
        this.pageShow = pageShow;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }
}
